1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| if true then g_mac = nil print("set up wifi mode") wifi.setmode(wifi.STATION) --根据无线路由器来设置 WiFi 名称和 WiFi 密码 wifi.sta.config("WiFi 名称", "WiFi 密码")) wifi.sta.connect() wifi.sta.autoconnect(1) cnt = 0 tmr.alarm(1, 1000, tmr.ALARM_AUTO, function() if (wifi.sta.getip() == nil) and (cnt < 20) then print("----IP unavaiable, Waiting...") cnt = cnt + 1 else tmr.stop(1) if (cnt < 20) then print("IP:" .. wifi.sta.getip()) print("MAC:" .. wifi.sta.getmac()) else print("----No Wifi Connected.") end end end) else print("Modify wifi.sta.config() function in line 7 according settings of your wireless router.") end
|
WIFI Module
wifi.setmode( )
原型: wifi.setmode(mode[, save])
作用: 配置WiFi工作模式
参数:
- mode模式
1.wifi.STATION 用于连接路由器,以便于连接互联网
2.wifi.SOFTAP 设备仅作为接入点。这将允许查看WiFi网络列表中的设备(当然,除非您隐藏SSID)。在这种模式下,计算机可以连接到NodeMCU,创建一个局域网。除非更改此值,否则NodeMCU设备将获得本地IP地址192.168.4.1,并为连接的计算机分配下一个可用的IP地址,例如192.168.4.2
3.wifi.STATIONAP 结合了wifi.STATION和wifi.SOFTAP的功能。它允许您创建本地WiFi连接并连接到另一个WiFi路由器
4.wifi.NULLMODE 将WiFi模式更改为NULL_MODE将使WiFi进入与MODEM_SLEEP类似的低功耗状态,只要wifi.nullmodesleep(false)尚未被调用
- save 选择是否将WiFi模式保存到Flash中
1.true WiFi模式配置将通过电源循环保留。(默认)
2.false WiFi模式配置将不会通过电源循环保留。
返回值: 设置后的模式
例子: wifi.setmode(wifi.STATION)
wifi.sta.config()
原型: wifi.sta.config(station_config)
作用: 配置wifi设置
参数: wifi.STATION是包含了各种wifi设置数据的一张表
- SSID wifi的名称
- PWD wifi的密码
其他的还有很多参数可以设置,详见文档
返回值: true成功 false失败
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| --connect to Access Point (DO NOT save config to flash) station_cfg={} station_cfg.ssid="NODE-AABBCC" station_cfg.pwd="password" wifi.sta.config(station_cfg) --connect to Access Point (DO save config to flash) station_cfg={} station_cfg.ssid="NODE-AABBCC" station_cfg.pwd="password" station_cfg.save=true wifi.sta.config(station_cfg) --connect to Access Point with specific MAC address station_cfg={} station_cfg.ssid="NODE-AABBCC" station_cfg.pwd="password" station_cfg.bssid="AA:BB:CC:DD:EE:FF" wifi.sta.config(station_cfg) --configure station but don't connect to Access point station_cfg={} station_cfg.ssid="NODE-AABBCC" station_cfg.pwd="password" station_cfg.auto=false wifi.sta.config(station_cfg)
|
wifi.sta.connect()
在 station 模式下连接到配置的路由
wifi.sta.autoconnect( )
原型: wifi.sta.autoconnect(auto)
作用: 在station 模式下自动连接到路由
参数: 0禁用自动连接 1启用自动连接
wifi.sta.getip()
在station 模式下获取IP地址,网络掩码和网关地址。如果IP =”0.0.0.0”,则返回nil
1 2 3 4 5 6 7 8 9
| -- print current IP address, netmask, gateway print(wifi.sta.getip()) -- 192.168.0.111 255.255.255.0 192.168.0.1 ip = wifi.sta.getip() print(ip) -- 192.168.0.111 ip, nm = wifi.sta.getip() print(nm) -- 255.255.255.0
|
wifi.sta.getmac()
在station 模式下获取MAC地址,MAC地址为字符串,例如“18:fe:34:a2:d7:34”